titre







romu Sommaire de cette page :



La Ram - Introduction : des ordinateurs en quête de mémoire





Quelques rappels, pour planter le décor...

Dans la langue anglaise, les Macintosh sont désignés, tout comme les compatibles PC, comme étant des "Personnal Computers" (on a d'ailleurs ici le sens premier de "PC", qui désigne maintenant par extension abusive mais commode les compatibles IBM).
Le terme "Computer" n'est pas anodin. Tous nos ordinateurs reposent en effet sur un concept du mathématicien John von Neumann, en l'occurrence le concept de "machine séquentielle à programme enregistré", dont le principe est le suivant :
Toute "l'intelligence", si l'on peut dire, de l'ordinateur réside dans ce qu'on appelle les programmes.
Pour des raisons de commodité, les programmes sont conçus et écrits le plus souvent dans un langage compréhensible par des humains (enfin par les programmateurs...), par exemple le Pascal, le C, C++, objective C, le Fortran...
Ces programmes sont ensuite compilés dans le langage machine (l'assembleur, qui est une suite d'instructions directement exécutables par le processeur).

Les ordinateurs ne font donc qu'exécuter "bêtement" et de manière séquentielle (les unes après les autres dans un ordre défini) les instructions qui sont contenues dans le programme. Comme ces instructions sont des opérations logiques (addition, soustraction etc.), le terme de "computer" est tout-à-fait approprié puisque "computer" se traduit tout simplement par "calculateur".

Remarque : chaque type de processeur possède son jeu d'instructions. Par exemple les processeurs Motorola 68k utilisent un jeu d'instructions complexes (ce sont des processeurs CISC) différent du jeu d'instructions des processeurs PowerPC (qui utilisent un jeu d'instructions réduit, RISC), dont diffère encore le jeu d'instructions des processeurs x86 Intel/AMD des PC. Un programme compilé pour un de ces processeurs ne sera donc pas exécutable par un autre processeur, à moins d'être émulé (ce qui est par exemple le cas des programmes 68k tournant sur PPC).

Quel est le rôle de la Ram dans tout ça ?

Oui, je suis inquiet à son sujet... ;-)
Et bien tout simplement tout processeur a absolument besoin pour exécuter des programmes, d'un espace de stockage temporaire, d'une "mémoire" dans laquelle il peut stocker les instructions qu'il doit exécuter.
Le processeur a aussi besoin de cet espace pour stocker les données qu'il a à traiter et/ou les résultats temporaires ou définitifs des calculs. En effet les données et instructions que le processeur doit traiter sont souvent issues des périphériques (cartes d'acquisition, périphériques de pointage ou claviers), ou de ce qu'on appelle les mémoires mortes (ROM), ou encore des espaces de stockage de masse comme les disques durs, qui sont soit lents d'accès soit dont les données sont éphémères (cartes d'acquisition, clavier, souris) et doivent être stockées quelque part.

C'est la Ram (Random Access Memory) qui va jouer ce rôle d'espace de stockage.

Les données à stocker en Ram, que ce soient donc des données à traiter ou des instructions à exécuter, sont de nature binaire.
Ces données sont donc des successions d'états logiques 0 ou 1, matérialisés à cause de la nature électronique des processeurs sous forme de tensions comme 0V ou 5V, accessibles rapidement par le processeur.

La Ram sera donc pour le processeur l'espace idéal pour stocker les données et les instructions, parce que celles-ci peuvent alors être accédées rapidement, manipulées à satiété et stockées tant que du courant est fourni, alors qu'au départ ces données sont éphémères (cartes d'acquisition, clavier, souris...), ineffaçables (ROM, Read Only Memory) ou alors ne peuvent pas être accédées suffisamment rapidement pendant les calculs (disques durs).

Deux exemples illustrant le rôle de la Ram :

  • Prenons le cas du système d'exploitation (Operating System, ici MacOS) :
    c'est le premier programme (en fait constitué du noyau plus une multitude de petits programmes comme les extensions) que le processeur exécute au démarrage : en effet c'est le système d'exploitation qui permet au processeur de communiquer avec l'extérieur (et avec l'utilisateur) et qui lui permet de gérer les périphériques.
    Comme les instructions du système d'exploitation doivent pouvoir à tout moment être accédées très rapidement (par exemple à chaque accès disque !), celles-ci doivent être stockées dans un espace accessible rapidement donc en Ram. Autrefois le système d'exploitation était presque totalement résident en Rom, mais on utilise de plus en plus la Ram parce que c'est plus rapide et plus facilement modifiable (seuls les procédures basiques d'entrées sortie restent encore en Rom aujourd'hui).
  • Prenons un autre exemple : la retouche d'images sous Photoshop (pour ne pas le nommer). Outre le programme lui-même qui doit être chargé en Ram, toutes les données de l'image de départ doivent également être chargées en Ram.
    Quand on fait agir un filtre, le processeur peut alors lire rapidement toutes les données dans la Ram, puis il effectue les calculs correspondant au filtre, et stocke à nouveau dans la Ram la nouvelle image résultante (ce qui permet de revenir lire l'image originale si on veut annuler l'opération). Si tout devait se passer uniquement sur le disque dur cela prendrait beaucoup plus de temps, le débit des disques durs modernes restant largement en dessous du dixième de celui de la Ram, et le temps d'accès étant encore plus génant car mille fois plus long sur disque dur...
    Comme il est devenu courant de travailler sur des images pouvant "peser" facilement une ou plusieurs dizaines de Mo, l'utilisation de grosse quantités de Ram est de plus en plus indispensable.


genie Comme on a vu, les donnés contenues dans cet espace de stockage doivent donc pouvoir être lues ou écrites très rapidement, ce qui n'est possible avec les technologies actuelles qu'avec les composants électroniques appelés "DRAM", "SRAM" ou "SDRAM" selon les cas (dans les premiers ordinateurs on utilisait des tores en ferrite...).

Ces composants ont tous en commun d'être constitués de points mémoire (les "bits*") organisés en matrices, ou tableaux si vous préférez.
La désignation RAM, pour "Random Access Memory" vient de là : en effet le temps d'accès à n'importe lequel de ces points mémoire constitués en matrice est toujours le même, donc on peut accéder de manière aléatoire (random) aux données. On utilise rarement l'unité du bit, on préfère les regrouper par 8 (on parle alors d'Octets.
 Attention : très souvent on confond le mot "bit" avec le "byte" anglais qui veut dire octet (donc 8 bits...).




Avertissement: cette section est un peu plus technique, si cela vous effraie sautez directement à la section DRAM
barre La RAM est donc toujours constituée d'une quantité plus ou moins grande de points mémoire, appelés "bits", qui mémorisent un état logique 1 (+5V ou + 3,3V) ou 0 (0V). Ces points sont toujours organisés sous forme de matrice. Le schéma ci-dessous représente une mémoire de 64 bits (8 octets) de type DRAM organisée en matrice de 8x8=64 bits :

Comme on peut voir, la matrice comporte 8 colonnes et 8 rangées.
Il y a donc 8 adresses de colonnes (colonne 1, colonne 2, etc.) et 8 adresses de rangées (rangée 1, rangée 2, etc.), soit au total 64 points mémoire (point 1:1, point 1:2 etc. jusqu'à point 8:8).
Ces 64 adresses sont codées et décodées en 6 bits (2 6=64) par les circuits d'adressage colonne et adressage rangées.
Les données sont lues et écrites dans les points mémoire grâce au circuit d'entrée/sortie, qui "lit" la tension du point mémoire et l'envoie dans le bus de données lors des opérations d'écriture, ou qui "lit" l'état du bus de données et l'écrit dans le point mémoire lors des opérations d'écriture mémoire.
Le circuit d'entrées/sorties est commandé par le bus de commande, qui donne soit l'instruction de lire, soit celle d'écrire en mémoire.
Une remarque : ici les points mémoires sont constitués d'un seul "bit" à la fois (donc le bus de données est large d'un seul "bit"). On désigne donc cette mémoire comme étant une mémoire 64 x 1 (64 points mémoire de 1 bit de large chacun).
Comme la matrice repésentée ici est du type "DRAM", les points mémoire sont constitués d'un transistor (de type MOS) et d'un condensateur. Quand la rangée du transistor est activée, le transistor établit un contact (comme si on fermait un interrupteur) entre le condensateur et la colonne correpondante. On peut alors soit "lire" la tension du condensateur sur la colonne, soit y "écrire" la valeur logique en forçant la tension aux bornes du condensateur à +5V ou à 0V.

Le condensateur se décharge obligatoirement au bout d'un moment à cause de fuites du courant électrique. C'est pourquoi le cycle de fonctionnement de la mémoire inclut un cycle de "rafraîchissement" des données, qui consiste à lire puis réécrire simultanément l'état logique de tous les points mémoire d'une rangée.
Ici pour rafraîchir la mémoire il faut donc 64 cycles de rafraîchissement, un par rangée de points mémoire.

Rafraîchissement

Sur une puce mémoire de 16 Mbits (soit 2 Mo) organisée en 4096 colonnes et 4096 rangées (4096x4096=16 777 216 bits, donc bien 16 Mbits), il faut activer séparément les 4096 rangées une à une pour rafraîchir toute la puce.
On parle alors de puce "4k refresh", puisqu'il faut 4096 cycles pour rafrîchir les données de la RAM (toutes les puces d'une barrette étant rafraîchies en parallèle).
Une remarque : certains Macintosh exigent des puces "2k refresh" car elles sont plus rapides, tandis que d'autres ne supportent que les "4k refresh" à cause de leur contrôleur mémoire.



Le contrôleur mémoire




Le contrôleur mémoire est le circuit qui s'occupe des transactions de données entre le processeur et la mémoire vive, et de la synchronisation d'horloge le cas échéant.

En effet, à la différence de la mémoire cache qui est directement contrôlée par le processeur, via un bus d'adresses et de données spécifiques, la mémoire vive partage très souvent le bus de données de la carte mère et est adressée par le contrôleur mémoire.
Le contrôleur mémoire s'occuppe donc de gérer la mémoire : il assure l'identification et le test des barrettes de mémoire au démarrage, et gère la synchronisation éventuelle de l'horloge mémoire avec l'horloge du processeur. Il permet aussi les accès direct à la mémoire à certains périqphériques (DMA).
Le contrôleur mémoire peut être "supervisé" par un MMU ou pas.
Le MMU (Memory Managment Unit) est un circuit adossé ou intégré au processeur qui s'occuppe d'insérer l'espace mémoire adressable réel des barettes de Ram dans l'espace adressable virtuel du processeur, et qui permet de gérer la "mémoire paginnée" ou mémoire virtuelle : la pagination permet de profiter d'un plus grand espace virtuel de mémoire système. Les "Pages" de mémoire qui n'ont pas étéutilisées récemment sont stockées sur le disque dur.



La DRAM





DRAM veut dire "Dynamic Random Access Memory". C'est le type de Ram décrit ci-dessus, et elle est organisée en matrice. La DRAM est qualifié de "dynamique" parce que les données logiques sont mémorisées sous forme de charges électriques dans autant de petits condensateurs qu'il faut stocker de "bits". Comme on l'a vu il faut rafraîchir en permanence les données contenues dans ces condensateurs. Si le courant cesse d'être fourni le rafraîchissement ne peut plus se faire et les données sont perdues à jamais...
La DRAM a été inventée par Intel en 1969 pour équiper le premier microprocesseur fabriqué au monde, le 4004. La DRAM équipe tous les Mac sauf certains portables qui utilisent de la SRAM.
La DRAM peut soit avoir son horloge indépendante de l'horloge de la carte mère, ce qui est le cas des DRAM "classiques" (FPM et EDO), soit avoir son horloge synchronisée sur celle de la carte mère (cas des SDRAM) ce qui est beaucoup plus rapide.
Les performances des différents types de DRAM se comparent de deux manières : Voici les deux principaux types de mémoires dynamiques :




La SDRAM

ou "Synchronous Dynamic Random Access Memory"




La mémoire vive de type SDRAM est plus rapide que les précédentes pour deux raisons : À la différence des DRAM EDO et FPM, le temps d'accès des mémoires SDRAM se mesure sur les deuxièmes, troisième et quatrième accès du cycle précédemment défini. Une mémoire SDRAM doit donc avoir un temps d'accès de 1/66=15ns pour fonctionner à 66 Mhz.
Si le temps d'accès est encore plus court (12 ou 10ns pour 66 Mhz), la SDRAM peut alors fonctionner en mode CAS 2 (2-2-2). L'essentiel est cependant la fréquence de fonctionnement, car les modes CAS 3 (3-2-2) et CAS 2 (2-2-2) ne présentent que très peu de différence de vitesse entre eux (5%). En fait, l'intérêt d'avoir des barettes fonctionnant à un temps de latence d'accès aux colonnes de 2 cycles (CAS2) au lieu de 3 (CAS3) est quasiment nul : il se limite à pouvoir ultérieurement augmenter ("overclocker") la fréquence de la carte mère (chose fréquemment pratiquée sur PC mais rarement sur Mac) sans avoir à remplacer toutes les barrettes de Ram, d'où le faible intérêt sur Mac d'exiger absolument des barettes CAS 2.

Malheureusement, lors de la traduction de MacOS 8.5 et suivants, l'application "Informations Système Apple" a été localisée de telle manière que lorsqu'elle détecte des barettes fonctionnant en CAS 3, elles sont signalées comme étant plus lentes :


Bien sûr, c'est une vérité, mais le manque d'explications a probablement pu inutilement pousser des possesseurs de Mac à l'achat de barette fonctionnant en CAS 2, alors que ce n'est absolument pas indispensable !



La SRAM

ou "Static Random Access Memory"




La SRAM utilise cette fois des points mémoires qui sont chacun une bascule. Ces bascules sont constituées de 6 transistors montés de telle sorte que l'ensemble ne peut prendre que deux états très stables (un peu comme une balance qui ne serait jamais en équilibre).
Pour ceux qui veulent voir un schéma de fonctionnement d'un point mémoire de ram statique, cliquez ici.

Les mémoires SDRAM ne nécessitent donc pas de rafraîchissement, complexe et coûteux en énergie. Consommant donc moins de courant que les mémoires DRAM, les mémoires SRAM ont donc été pendant un cours temps utilisées comme mémoire vive principale dans les premiers portables Apple.
Cependant ces mémoires sont très chères et chaque point mémoire prend beaucoup plus de place que pour les DRAM, ce qui ne permet pas de fabriquer des puces de SRAM d'une densité comparable aux puces de DRAM. On n'utilise donc plus maintenant la SRAM que pour fabriquer la mémoire cache des processeurs.




La verification ou la correction d'erreurs








Tous les dessins de personnages de cette page sont reproduits à partir de la bande dessinée "Le Génie des Alpages" de F'Murr.

iCab

Revenir à l'accueil - revenir en haut de la page - page suivante